﻿package component.formula.util;

import java.sql.Timestamp;
import java.util.Date;

import component.formula.exception.FormulaException;

public class CalculateUtil {
	//是否整数或小数
	public static boolean isNumberAndPoint(String str) {
		if(str.equals("")) return false;
		if(str.charAt(0)=='-') str = str.substring(1); 
		for(int i=0;i<str.length();i++){
			char temp = str.charAt(i);
			if( !( (temp>='0' && temp<='9') || temp=='.' ) ){
				return false;
			}
		}
		return true;
	}
	
	//是否整数
	public static boolean isNumber(String str) {
		if(str.equals("")) return false;
		for(int i=0;i<str.length();i++){
			char temp = str.charAt(i);
			if( !( (temp>='0' && temp<='9')) ){
				return false;
			}
		}
		return true;
	}
	
	//是否boolean字符串
	public static boolean isBoolean(String str){
		if("true".equals(str) || "false".equals(str)){
			return true;
		}else{
			return false;
		}
	}
	
	//将字符串转换成boolean值
	public static boolean getBoolean(String str) throws FormulaException{
		if("true".equals(str)) return true;
		else if("false".equals(str)) return false;
		else{
			throw new FormulaException(str + " 不是boolean值");
		}
	}
	
	//是否包含逻辑运算符号
	public static boolean isContainLogic(String str){
		if(str.indexOf(">")!=-1 || str.indexOf("<")!=-1 || str.indexOf("!")!=-1 || str.indexOf("=")!=-1 || str.indexOf("|")!=-1 || str.indexOf("&")!=-1){
			return true;
		}
		return false;
	}
	
	//是否逻辑符号
	public static boolean isLogic(char c){
		if(c=='>' || c=='<' || c=='!' || c=='=' || c=='|' || c=='&' ){
			return true;
		}
		return false;
	}
	
	//是否包含操作符
	public static boolean isContainOperator(String str){
		if(str.indexOf("+")!=-1 || str.indexOf("-")!=-1 || str.indexOf("*")!=-1 || str.indexOf("/")!=-1){
			return true;
		}
		return false;
	}
	
	//是否包含操作符或括号
	public static boolean isContainOperatorOrBracket(String str){
		if(str.indexOf("+")!=-1 || str.indexOf("-")!=-1 || str.indexOf("*")!=-1 || str.indexOf("/")!=-1 || str.indexOf("(")!=-1 || str.indexOf(")")!=-1){
			return true;
		}
		return false;
	}
	
	//是否操作符
	public static boolean isOperator(char c){
		if(c=='+' || c=='-' || c=='*' || c=='/'){
			return true;
		}
		return false;
	}
	
	//是否操作符或括号
	public static boolean isOperatorOrBracket(char c){
		if(c=='+' || c=='-' || c=='*' || c=='/' || c=='(' || c==')' ){
			return true;
		}
		return false;
	}
	
	//获取当前日期
	public static String getCurrentDate() {
		Date d = new Date();
		Timestamp t = new Timestamp(d.getTime());
		return t.toString().substring(0, 10);
	}
	
	public static void main(String[] args) {
		System.out.println(getCurrentDate());
	}
	
}
